Integraton adaptor and proxy based composite application provisioning method and apparatus

ABSTRACT

An integrator, a plurality of adapters corresponding to a plurality of applications, and a proxy are employed to cooperatively provision the applications as a composite application. In one embodiment, the integrator selectively invokes the appropriate adaptors, which in turn, invoke the proxy. Provision is switched from one application to another by the adaptor of a former application invoking the integrator, which in turn, invokes another application, via its adaptor. Each of the integrator and adaptors may through the proxy, modify a provisioned portion of one the applications. Selected ones of the integrator and adaptors may also have operations performed while the proxy is in a pre-proxy and/or a post-proxy state, thereby facilitating the cooperative provisioning of the applications. Further, modifications to facilitate subsequent requests to be redirected back to the integrator are distributed, and performed on the composite application consuming clients.

RELATED APPLICATION

[0001] This patent application claims benefit of priority to provisionalpatent application No. 60/348,361, titled “SYSTEM AND METHOD OFSYNTHESIZING APPLICATIONS BY RE-PURPOSING AND INTEGRATING WEB-BASEDAPPLICATIONS”, filed Oct. 19, 2001, which specification is hereby fullyincorporated by reference.

FIELD OF THE INVENTION

[0002] The present invention relates to the field of data processing.More specifically, the present invention is related to the provisioningof composite applications, in particular, composite web basedapplications.

BACKGROUND OF THE INVENTION

[0003] Over the past decades, an incredibly rich and diverse collectionof computer implemented applications offering huge amounts ofinformation and the ability to interact and request services directlyfrom a variety of businesses has been deployed. In recent years, withthe advance of Web-based applications, the rate of deployment hasfurther accelerated.

[0004] The World Wide Web (hereafter, the Web) was originally conceivedas an information sharing system. It provided a way for informationowners to publish documents in a standardized format and to create“links” to related information anywhere on the Internet. These documentscould be accessed using a simple, ubiquitous client providingessentially universal access. Although the Web was originally designedaround mostly static content, people quickly realized it could be usedto deliver applications. This was accomplished by dynamically generatingthe published information and by embedding processing instructions inthe published documents. The Web rapidly evolved from an informationsharing system to an application platform and before long, Web-basedapplications became the standard used by an increasing number ofcorporations, both internally and externally via the Internet.

[0005] Application developers should be able to synthesize newapplications, i.e. composite applications, by integrating new, customapplication logic and existing applications.

[0006] Further, a user of the new composite application should be ableto see the new composite application being seamlessly tailored to thatuser and the new application, and not just a hodgepodge of differentapplications and styles placed together in an inconsistent orincompatible haphazard manner.

[0007] Moreover, it will be desirable for the new composite applicationto be provisioned without causing the original data and applications tobe changed or disturbed in any substantial manner, nor requiringnon-insubstantial support from the original application administratorsand developers. It will be most desirable if the new applicationdeveloper can present and use the existing applications and data in waysnot necessarily even foreseen (or foreseeable) by the originaldevelopers and users.

[0008] However, each corporation—and often each department within acorporation—typically uses a different set of data, technologies, rules,and applications, and has no desire to change the way they work orrewrite existing applications. Additionally, administrators anddevelopers associated with these applications may be unable or unwillingto devote any resources or time to supporting access to theapplications; they are also typically resistant to externalizinginterfaces to the applications, retrofitting integration adaptors orhooks, or adding administrative procedures or data just to suit the newapplication.

[0009] Thus, an improved approach is needed to provision compositeapplications formed from a number of underlying applications (typically,previously implemented), in the above described desired manner,overcoming the disadvantages and difficulties of the prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The present invention will be described by way of exemplaryembodiments, but not limitations, illustrated in the accompanyingdrawings in which like references denote similar elements, and in which:

[0011]FIG. 1 illustrates an overview of the present invention, inaccordance with one embodiment;

[0012]FIG. 2 illustrates the composite application platform of FIG. 1,in accordance with one embodiment;

[0013]FIG. 3 illustrates the composite application integrator of FIG. 2in further detail, in accordance with another embodiment;

[0014]FIG. 4 illustrates the application adaptor of FIG. 2 in furtherdetail, in accordance with another embodiment;

[0015]FIG. 5 illustrates the operational flow of the relevant aspect ofthe proxy of FIG. 2, in accordance with another embodiment;

[0016]FIG. 6 illustrates extraction of a subset of an application, inaccordance with one embodiment;

[0017]FIG. 7 illustrates an example computer system suitable for use topractice the present invention;

[0018]FIGS. 8a-8 d illustrate an example composite applicationintegrator of an example composite application;

[0019]FIGS. 9a-9 d illustrate an example application adaptor of one ofthe underlying applications of the example composite application; and

[0020]FIGS. 10a-10 f illustrate another example application adaptor ofanother one of the underlying applications of the example compositeapplication.

SUMMARY OF THE INVENTION

[0021] Briefly, the present invention includes a composite applicationprovisioning method and apparatus.

[0022] In accordance with one aspect, a composite application integratora number of corresponding application adaptors, and a proxy are employedto provision a composite application formed from a number of underlyingapplications, in particular, applications that employ a request andresponse protocol.

[0023] In accordance with another aspect, the composite applicationintegrator and application adaptors include invocable services.

[0024] In accordance with yet another aspect, the composite applicationintegrator implements a handler interface, with the application adaptorsas its handler clients.

[0025] In accordance with yet another aspect, the proxy has pre-proxyand post-proxy states, and the application adaptors include pre-proxyand post-proxy state operations.

[0026] In accordance with yet another aspect, the composite applicationintegrator and/or selected one/ones of the application adaptors maymodify a proxied portion of an underlying application.

[0027] In accordance with yet another aspect, modifications tofacilitate subsequent requests to be redirected back to the integratorare distributed, and performed on the composite application consumingclients.

[0028] In accordance with yet another aspect, the underlyingapplications are Web-based applications.

DETAILED DESCRIPTION OF EMBODIMENTS

[0029] In the following description, various embodiments of the presentinvention will be described. In particular, they are embodiments wherethe composite applications formed from underlying Web-basedapplications. From the descriptions to follow, those skilled in the artwould appreciate that the present invention is not limited to Web-basedapplications. The present invention may be practiced in othernon-Web-based embodiments.

[0030] For purposes of explanation, specific numbers, materials andconfigurations are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be apparent tothose skilled in the art that the present invention may be practicedwith only some of these details, and/or with other elements. In otherinstances, well-known features are omitted or simplified.

Terminology

[0031] Parts of the description will be presented in data processingterms, such as data, interface, handler, proxy, and so forth, consistentwith the manner commonly employed by those skilled in the art to conveythe substance of their work to others skilled in the art. As wellunderstood by those skilled in the art, these quantities take the formof electrical, magnetic, or optical signals capable of being stored,transferred, combined, and otherwise manipulated through electricaland/or optical components of a processor and its subsystems.

[0032] Part of the descriptions will employ various abbreviations,including but are not limited to: CDROM Compact Disc Read Only MemoryDDRAM Dynamic Direct Random Access Memory DVD Digital Versatile DiscECMA European Computer Manufacturers Association HTTP(S) HypertextTransmission Protocol (over SSL) SDRAM Static Direct Random AccessMemory SOAP Simple Object Access Protocol SSL Secure Sockets LayerTCP/IP Transmission Control Protocol/Internet Protocol URL UniformResource Locator XML eXtended Markup Language

Section Headings, Order of Descriptions and Embodiments

[0033] Section headings are merely employed to improve readability, andthey are not to be construed to restrict or narrow the presentinvention.

[0034] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0035] The phrase “in one embodiment” is used repeatedly. The phrasegenerally does not refer to the same embodiment, however, it may. Theterms “comprising”, “having”, “including” and other constructs of thelike, are synonymous, unless the context dictates otherwise.

Overview

[0036] We refer now to FIG. 1, wherein a block diagram illustrating anoverview of a web-based embodiment of the present invention, is shown.As illustrated, for the embodiment, a conventional web applicationserver 104 is advantageously augmented with composite applicationplatform (CAP) 106 incorporated with the teachings of the presentinvention. As a results of the services offered by CAP 106, a user 102,also referred as a client, using e.g. a generic client agent, such asclient web browser, may access and use a number of Web-basedapplications 108 a-108 n, in a composite or integrated manner.(Hereinafter, either the user/client or his/her computing device and/orgeneric agent/browser may be referred as 102).

[0037] As will be described in more detail below, composite applicationplatform 106 enables a composite application developer to efficientlyinject logic to integrate Web-based applications 108 a-108 n, enablingapplications 108 a-108 n to be presented in a coherent manner, asopposed to haphazardly. Of course, generally, the degree of integrationis dependent on the nature and number of the applications, and theamount of integration logic provided by a composite applicationdeveloper.

[0038] Further, as illustrated by FIG. 6, the present invention alsoenables a composite application developer to extract and provision onlya subset of the functionalities of an application. For the exampleextraction of example Web-based application 602, only thefunctionalities offered by web pages 604, as opposed to allfunctionalities offered by all web pages of application 602.

[0039] Resultantly, practicing the present invention, a compositeapplication developer, may even synthesize new application usingexisting applications in whole or in part.

[0040] Continuing to refer to FIG. 1, generally, the illustratedWeb-based embodiments operate as follows:

[0041] Requests are generated either directly from a client Web browser102 or via a Web application server 104. These requests come to CAP 106,which interprets them and forwards them (possibly after modification) tothe appropriate Web-based applications 108 a-108 n. The Web-basedapplications 108 a-108 n process the requests, and returns the resultsto client 102 via CAP 106. CAP 106 may further interpret and process theresults, before forwarding the final results to client 102.

[0042] In various embodiments, the processing includes modification ofthe results returned, such that all or selected ones of subsequentrequests may be redirected to CAP 106. This processing may consist e.g.altering all static URL's contained within the HTML so that they aredirected back to CAP 106. It also may involve parsing all ECMA scriptcode so that any dynamically constructed URL's are similarly modified.The exact nature of the processing or modification is applicationdependent.

[0043] In other embodiments, Web browser 102 is advantageously augmentedwith complementary processing logic to perform the processing to causethe subsequent requests to be directed back to CAP 106. In other words,for these embodiments, modification of the returned results to cause thesubsequent requests to be directed back to CAP 106 is advantageouslydelegated to client 102. In some of these embodiments, where Web browser102 is constructed in an object-oriented manner, the complementaryprocessing logic to modify the returned results to cause the subsequentrequests to be directed back to CAP 106 is provided as an extension tothe object model of Web browser 102.

[0044] These and other aspects of the process will be further describedbelow.

[0045] For the illustrated Web-based embodiment, the communicationsbetween the participants, i.e. client 102, Web application server 104,CAP 106 and applications 108 a-108 n, are accomplished using the commonInternet protocols of HTTP and HTTPS. In other embodiments, othercommunication protocols may be employed instead.

Composite Application Platform

[0046]FIG. 2 illustrates CAP 106 in further details, in accordance withone embodiment. As illustrated, for the embodiment, CAP 106 includesproxy services 202, composite application integrator 204, applicationadaptors 206, and a number of miscellaneous runtime services (notshown). The elements are communicatively coupled to each other, and tothe users/web servers 102/104 and applications 108 a-108 n as shown.

[0047] Composite application integrator 204 and application adaptors 206are provided by a composite application developer in accordance with theprinciples of the present invention. Each includes at least a number ofservices. Typically, one application adaptor 206 is provided for eachunderlying application to be employed to form the composite application.Composite application integrator 204 cooperates with applicationadaptors 206 and proxy 202 to enable a user 102 to use the applicationstogether, in an integrated manner.

[0048] Proxy 202 and other runtime services provide a number of runtimeservices during execution. Proxy 202 in particular, is employed to proxythe provisioning of various portions of the underlying applications 108a-108 n to the users 102, including receiving the users' interactionsand forwarding the users' inputs to applications 108 a-108 n. Examplesof the miscellaneous runtime services include conventional memoryallocations, exceptions and interrupt routings and so forth.

[0049] Generally, CAP 106 operates as follows:

[0050] 1) When a user 102 first accesses an “integrated” application, asession is established within CAP 106 by the runtime services.Establishment of the session may include e.g. associating the user'sidentity with a persistent user profile, as well as performing oursession initialization activities. The established session represents a“user”, and is used to execute all subsequent requests for the “user”.

[0051] 2) Once a session has been established, it is used to requestexecution of a “composite application integrator” (CAI) 204 on behalf ofthe session's user. The request may e.g. be in the form of a URLcontaining the base address of CAP 106 and the identity of CAI 204. Theruntime services use this identity to locate CAI 204, which in oneembodiment is an XML file that contains the integration definitions andlogic. The request is constructed outside CAP 106 and may be containedin an HTML link on some web page or be constructed and sentprogrammatically from another Web application.

[0052] 3) The definition and logic of the identified CAI 204 describesand provisions a sequence of services to be invoked, and how the outputof each service is to be used. The services themselves may fall in to 2categories:

[0053] a. Application Services—application services interact directlywith some existing Web applications and encapsulate some functionalityprovided by each of the Web applications. The interaction with theexisting Web applications are made through the corresponding applicationadaptors 206.

[0054] b. Composite Services—composite services combine 2 or more otherservices (which themselves may be composite or application) and definethe sequencing between these services and the handling of their outputs.

[0055] 4) Invocation of an application service results in a series ofone or more requests being issued to the application supplying theservice through application adaptors 206. These requests may access datafrom the parameters passed to the service, the output of previousrequests, and the user profile of the current session. This allows theservice execution to be altered based on the context of the CAI 204 inwhich it is executing. The result of each request is a response thatfalls into one of two categories:

[0056] a. A response that should be sent to the user so that they candirectly access the underlying application and guide the execution ofthe service. As described earlier, the response is processed so that anysubsequent requests will be directed back to CAP 106. This processingmay consist e.g. altering all static URL's contained within the HTML sothat they are directed back to CAP 106. It also may involve parsing allECMA script code so that any dynamically constructed URL's are similarlymodified. In addition, the response may be modified in order to removeundesired content and/or URL's and to alter the formatting of theremaining content. Further, the processing may be advantageouslydelegated to client 102.

[0057] b. A response that represents, in whole or in part, the output ofthe service itself. In this case, the response may be processed toremove undesired content and to alter the formatting of the remainingcontent. It may also be transformed from an unstructured format such asHTML to a more structured XML-based representation. Once all of the dataneeded to produce the output of the service has been obtained, it willbe returned to the caller and processed however the caller desires.

[0058] 5) The return of a “re-directed” response (from category “a”above) may result in subsequent requests from the user. These requestsare associated with the service from which they originated and executionof that service is continued from the spot at which the request wassent. The continued execution of the service results in more processingas described above in (3). In various embodiments, CAP 106 may providean audit trail of all interactions with the underlying applications.

[0059] 6) When a service completes, its final response is returned tothe caller as output. This output can be used to decide which service(s)to call next and/or passed to subsequent services for processing. It canalso be used to construct the final response for CAI 204, which isprovided to user/client 102 through proxy 202.

[0060] Accordingly, underlying applications, in particular, web basedapplications may be relatively efficiently integrated, or extracted tosynthesize new applications.

Composite Application Integrator

[0061] Referring now to FIG. 3, wherein an outline of a compositeapplication integrator 204, in accordance with one embodiment, isillustrated. The embodiment assumes an object-oriented implementation.However, from the description to follow, those skilled in the art willappreciate that the present invention is not so limited. In alternateembodiments, other implementation techniques may be employed to achievethe same purpose.

[0062] As illustrated, a composite application integrator 204 includesan identification or declaration identifying/declaring the file as acomposite application integrator. For the embodiment, it is done via adeclaration of implementation of an interface of the type“Integrate_Application” 302.

[0063] As alluded to earlier, a composite application integrator 204includes a number of services 304, each having a flow of tasks 306,providing one or more “integration” services. The exact nature of the“integration” is application dependent.

[0064] For the embodiment, a composite application integrator 204 alsoidentifies the corresponding adaptors of the underlying applicationsbeing “integrated” 308.

[0065] Further, for the embodiment, a composite application integrator204 may also identify/declare a handler interface, and the fact that oneor more of the adaptors of the underlying applications are its clients,310-312.

[0066] A composite application integrator 204 also identifies proxyservice 202 of CAP 106.

[0067] A composite application integrator 204 may also include a numberof “private” utilities or services, i.e. utilities/services for its ownuse, and not invoked by adaptors 206.

Application Adaptor

[0068] Referring now to FIG. 4, wherein an outline of an applicationadaptor 206, in accordance with one embodiment, is illustrated. Theembodiment also assumes an object-oriented implementation. However, fromthe description to follow, those skilled in the art will also appreciatethat the present invention is not so limited. In alternate embodiments,other implementation techniques may be employed to achieve the samepurpose.

[0069] As illustrated, an application adaptor 206 includes anidentification or declaration identifying/declaring the file as anapplication adaptor. For the embodiment, it is done via a declaration ofimplementation of an interface of the type “Adaptor” 402.

[0070] As alluded to earlier, an application adaptor 206 includes anumber of services 404, each having a flow of tasks 406, providing oneor more “adaptation” services of a corresponding underlying application.The exact nature of the “adaptation” is application dependent.

[0071] For the embodiment, an application adaptor 206 also identifiesits handler and the handler interface (which as described earlier, isthe composite application integrator) 408.

[0072] Further, an application adaptor 206 also declares animplementation of a “ProxyHandler” interface 422, provides for a proxyhandler, and identifies proxy 202 as the handler's client, 424.Additionally, an application adaptor 206 may also provide for pre-proxystate as well as post-proxy state operations, 426-428.

[0073] Similarly, an application adaptor 206 also may also include anumber of “private” utilities or services, i.e. utilities/services forits own use, and not invoked by integrator 204.

Proxy

[0074] Referring now to FIG. 5, wherein a flow diagram illustrating theoperation flow of the relevant aspects of proxy 202, in accordance withone embodiment, is shown. As illustrated, in response to the receipt ofa request to provision a web page of an underlying application beingintegrated, proxy 202 determines whether the request is associated withthe provisioning of a new web page, block 502.

[0075] If the request is for a new web page, proxy 202 sets itsoperating state to a pre-proxy state (resulting in the execution of thepre-proxy state operations of the various adaptors 206), block 504.Thereafter, proxy 202 retrieves the requested page and provisions it forthe user/client 102, block 506. Upon provisioning the “proxied” page,proxy 202 sets its operating state to a post-proxy state (resulting inthe execution of the post-proxy state operations of the various adaptors206), block 508.

[0076] Back at block 502, if it is determined that the new request isnot for the provisioning of a new page, the request is assumed to be foran operation or service to be performed against or on the currentlyprovisioned/proxied web page. Accordingly, proxy 202 performs therequested operation or service on the currently proxied web page.

[0077] Adaptors 206 may be notified of the proxy's states using any oneof a number of state notification techniques known in the art.

Example Computing System

[0078]FIG. 7 illustrates an example computer system, suitable for use topractice the present invention, in accordance with one embodiment.Depending on the performance characteristics of the illustratedelements, example computer system 700 may be employed as a client deviceof the user or as a server hosting the web application server 104 and/orCAP 106.

[0079] As illustrated, computer system 700 includes processor(s) 702,memory 704 and persistent store 708, and various I/O components 710,coupled to each other via bus 708. I/O components 710 may e.g. include adisplay device, a keyboard, a cursor control device, and so forth.

[0080] Memory 704 and persistent store 706 are employed to store theworking and permanent copy of the composite application platform 106 ofthe present invention, along with other system software 712. Persistentstore may be a EEPROM (or like kind variants, such as a Flash Memory, aMemory Stick), a magnetic or optical disk drive, a CDROM, a DVD driveand so forth. Memory 704 may be any SDRAM, DDRAM or other high speedvolatile as way as non-volatile storage devices known in the art.

[0081] Processor 702 is employed to execute CAP 106 and other systemsoftware 712.

[0082] Except for CAP 106 and the manner the various elements of FIG. 4are used to practice the present invention, the other illustratedelements are known in the art, and accordingly will not be furtherdescribed.

Example Application

[0083]FIGS. 8a-8 d, 9 a-9 d, and 10 a-10 f illustrate an exampleintegrated application provisioned by applying the principles of thepresent invention. Illustrated in FIGS. 9a-9 d and 10 a-10 f are twoexample application adaptors 206 for two example correspondingunderlying applications, an order entry application (ACME), and anarbitrary application having a product configuration function (alsoreferred to as the product configurator). The two example adaptors 206,as described earlier, facilitate access or interacting with thecorresponding underlying “order entry” and “configurator” applicationsrespectively.

[0084] Illustrated in FIGS. 8a-8 d is an example composite applicationintegrator 204 integrating the two underlying “order entry” and“configurator” applications. The services offered by integrator 204include a service to edit an “order” page of the order entry applicationto insert a “configure order” button for a user/client 102 to initiatean editing process for an order. The services offered by integrator 204also include a service to invoke the “order configurator” application(through its adaptor) for the user/client 102 to use, in response to theuser/client's selection of the inserted “edit order” button.

[0085] As illustrated, example composite application integrator 204identifies/declares implementation of the “Integrate_Application”interface 802. It also includes a number of services 804 a-804 c, morespecifically, a “start” service 804 a for starting the integratedapplication, an “acmePreProxy” service 804 b offering certainintegration services for the pre-proxy state operations of exampleadaptor 206 (invocation of the “configurator” application), and an“acmeEditPage” service 804 c for inserting the “configure order” buttoninto the “edit order” page of the “order entry” application.

[0086] Example services 804 a-804 c include example flows 804 a-804 c ofexample tasks 810 a-810 d to be executed when the service is invoked.Example tasks 810 a-810 d include example calls to other services, suchas example calls 812 a-812 e. Example services 804 a-804 c also includeexample parameters 806 a-806 e to affect task executions. Further,example services 804 a-804 c include example “connector sources” andconnector destinations” 828 a-828 g, for tracking the “state” of thecomposite application.

[0087] As described earlier, example integrator 204 identifies theadaptors of the underlying applications, 814 and 820. Example integrator204 also provides for a handler interface for the example adaptors, 816,and identifies the adaptors as its clients, 818. Further, exampleintegrator 204 identifies 822 proxy 202, and includes a private service“addConfigureButton” 826.

[0088] As illustrated in FIGS. 9a-9 d and 10 a-10 f, example adaptors ofthe “order entry” and “configurator” applications includedeclaration/identification of the respective implementations of the“Adaptor” interface, 902 and 1002.

[0089] Example adaptor for the “order entry” application 206 includes areference to the “acme/Handler” interface provisioned by exampleintegrator 204.

[0090] Example adaptors include a number of services 904 a-904 c and1004, “createOorder”, “addItem” and “submitOrder” for the “order entry”application adaptor 206, and “configureItem” for the “configurator”application adaptor 206.

[0091] Both example adaptors identify 906 and 1006 proxy 202, anddeclare implementation of the “proxyHandler” interface, 908-910 and1008-1010.

[0092] Both example adaptors include pre-proxy state operations 912 and1012 to be executed when proxy 202 is in a “pre-proxy” state, andpost-proxy state operations 914 and 1014, to be executed when proxy 202is in a “post-proxy” state.

[0093] Each of the services 904 a-904 c and 1004 includes flows of tasksto be executed when the service is invoked. Similarly, each taskselectively invokes other services, and the execution is affected by theservice' parameters. In like manner “connector destinations” and“connector sources” are employed to track the states of the adaptors.

[0094] Also similar to example integrator 204, example adaptors 206include private utilities “postToURL” 920 and “addDoneButton” and“makeBOM” 1020 a-1020 b (BOM=Bill of Materials), private variables“createURL” 918 a, “editURL” 918 b, “startURL” 1018 a and “bom” 1018 b.

[0095] Resultantly, underlying “order entry” application and“configurator” application may be integrated in a relatively moreefficient manner.

Advantages

[0096] The present invention has the following potential advantages:

[0097] It operates in a completely or substantially non-intrusivemanner, requiring little or no change to the applications beingintegrated.

[0098] The implementation can reside virtually anywhere in the networkbetween the client Web browser and the applications being integrated.Further, it requires little or no changes to the client Web browser orinstallation of software on the client machine.

[0099] It enables the creation and use of fully interactive services inaddition to discrete, computational services.

Conclusion and Epilogue

[0100] Thus, it can be seen from the above descriptions, a novelcomposite application provisioning method and apparatus has beendescribed.

[0101] While the present invention has been described in terms of theabove described embodiments, those skilled in the art will recognizethat the invention is not limited to the embodiments described. Thepresent invention can be practiced with modification and alterationwithin the spirit and scope of the appended claims. Thus, thedescription is to be regarded as illustrative instead of restrictive onthe present invention.

What is claimed is:
 1. An application provisioning method comprising:invoking an integrator of a composite application comprising a pluralityof underlying applications to invoke the composite application; theintegrator in turn invoking a first adaptor corresponding to a first ofthe underlying applications to invoke the first underlying application;the first adaptor invoking a proxy to provision a portion of the firstunderlying application; and the proxy provisioning the portion of thefirst underlying application in response.
 2. The method of claim 1,wherein the invoking of the first adaptor corresponding to a first ofthe underlying applications by the integrator comprises the integratorinvoking a service of the first adaptor.
 3. The method of claim 1,wherein the first underlying application comprises a first web basedapplication, and the portion comprises a web page of the first web basedapplication.
 4. The method of claim 1, wherein the method furthercomprises determining a pre-proxy state of the proxy.
 5. The method ofclaim 4, wherein the method further comprises causing a sequence ofpre-proxy state operations of the first adaptor be performed while theproxy is in a pre-proxy state.
 6. The method of claim 1, wherein themethod further comprises determining a post proxy state of the proxy. 7.The method of claim 6, wherein the method further comprises causing asequence of post proxy state operations of the first adaptor to beperformed, while the proxy is in a post-proxy state.
 8. The method ofclaim 1, wherein the method further comprises the first adaptormodifying a portion of an underlying application being provisioned bythe proxy, through the proxy.
 9. The method of claim 1, wherein themethod further comprises the first adaptor invoking a service of theintegrator to facilitate provisioning of the composite application. 10.The method of claim 1, wherein the method further comprises modifyingthe portion of the first underlying application provided by the proxy,with said modifying being performed by an extended browser of arecipient client of the portion of the first underlying application. 11.The method of claim 10, wherein said modifying comprises modifying atleast a selected one of a static resource location identifier and adynamically generated resource location identifier.
 12. The method ofclaim 1, wherein the method further comprises the integrator invoking asecond adaptor corresponding to a second of the plurality of underlyingapplications to invoke the second underlying application; the secondadaptor invoking a proxy to provision a portion of the second underlyingapplication; and the proxy provisioning the portion of the secondunderlying application in response.
 13. The method of claim 12, whereinthe invoking of the second adaptor corresponding to a second of theunderlying applications by the integrator comprises the integratorinvoking a service of the second adaptor.
 14. The method of claim 12,wherein the second underlying application is a second web basedapplication, and the portion of the second underlying application is aweb page of the second web based application.
 15. The method of claim12, wherein the method further comprises causing a sequence of pre-proxystate operations of the second adaptor to be performed, while the proxyis in a pre-proxy state.
 16. The method of claim 12, wherein the methodfurther comprises causing a sequence of post proxy state operations ofthe second adaptor to be performed, while the proxy is in a post-proxystate.
 17. The method of claim 12, wherein the method further comprisesthe second adaptor modifying a portion of an underlying applicationbeing provisioned by the proxy, through the proxy.
 18. The method ofclaim 12, wherein the method further comprises the second adaptorinvoking a service of the integrator to facilitate provisioning of thecomposite application.
 19. The method of claim 12, wherein the methodfurther comprises the integrator modifying a portion of an underlyingapplication being provisioned by a proxy, through the proxy.
 20. Anapplication provisioning method comprising: a first adaptorcorresponding to a first underlying application of a compositeapplication, in response to a request for a portion of the firstunderlying application, invoking a proxy to provision the portion of thefirst underlying application; and the proxy provisioning the portion ofthe first underlying application in response.
 21. The method of claim20, wherein the first underlying application comprises a first web basedapplication, and the portion comprises a web page of the first web basedapplication.
 22. The method of claim 20, wherein the method furthercomprises determining a pre-proxy state of the proxy.
 23. The method ofclaim 22, wherein the method further comprises causing a sequence ofpre-proxy state operations of the first adaptor be performed, while theproxy is in a pre-proxy state.
 24. The method of claim 20, wherein themethod further comprises determining a post proxy state of the proxy.25. The method of claim 24, wherein the method further comprises causinga sequence of post proxy state operations of the first adaptor to beperformed, while the proxy is in a post-proxy state.
 26. The method ofclaim 20, wherein the method further comprises the first adaptormodifying a portion of an underlying application being proxied by theproxy.
 27. The method of claim 20, wherein the method further comprisesa second adaptor corresponding to a second underlying application of thecomposite application, in response to a request for a portion of thesecond underlying application, invoking the proxy to provision theportion of the second underlying application; and the proxy provisioningthe portion of the second underlying application in response.
 28. Anapplication provisioning method comprising: making a first request of acomposite application comprising a plurality of underlying applications,via an integrator of the composite application; receiving from a firstof the plurality of underlying applications, via a proxy, a response tosaid first request, with the response including one or more furtherrequests that can be made of the first underlying application; andlocally modifying the response to facilitate redirection of at least oneof the one or more further requests to said integrator, on selection ofa modified one of the one or more further requests.
 29. The method ofclaim 28, wherein said local modifying comprises locally modifying atleast a selected one of a static resource location identifier and adynamically generated resource location identifier.
 30. The method ofclaim 29, wherein said local modification of a dynamically generatedresource location identifier comprises parsing and modifying scriptcode.
 31. An apparatus comprising: storage medium having stored thereina plurality of programming instructions to implement an integrator of acomposite application comprising a plurality of underlying applicationsfor invoking the composite application, with the integrator designed toinvoke a first adaptor corresponding to a first of the underlyingapplications to invoke the first underlying application, the firstadaptor, with the first adaptor designed to invoke a proxy to provisiona portion of the first underlying application, and the proxy, with theproxy provisioning the portion of the first underlying application inresponse; and at least one processor coupled to the storage medium toexecute the programming instructions.
 32. The apparatus of claim 31,wherein the integrator is designed to invoke the first adaptorcorresponding to a first of the underlying applications by invoking aservice of the first adaptor.
 33. The apparatus of claim 31, wherein thefirst underlying application comprises a first web based application,and the portion comprises a web page of the first web based application.34. The apparatus of claim 31, wherein the first adaptor is furtherequipped to determine a pre-proxy state of the proxy, and perform asequence of pre-proxy state operations while the proxy is in thepre-proxy state.
 35. The apparatus of claim 31, wherein the firstadaptor is further equipped to determine a post-proxy state of theproxy, and perform a sequence of post-proxy state operations while theproxy is in the post-proxy state.
 36. The apparatus of claim 31, whereinthe first adaptor is further equipped to modify a portion of anunderlying application being provisioned by the proxy, through theproxy.
 37. The apparatus of claim 31, wherein the first adaptor isfurther equipped to invoke a service of the integrator to facilitateprovisioning of the composite application.
 38. The apparatus of claim31, wherein the integrator is further equipped to invoke a secondadaptor corresponding to a second of the plurality of underlyingapplications to invoke the second underlying application; theprogramming instructions further implement the second adaptor, with thesecond adaptor being designed to invoke the proxy to provision a portionof the second underlying application, and the proxy is further equippedto provision the portion of the second underlying application inresponse.
 39. The apparatus of claim 38, wherein the integrator isdesigned to invoke the second adaptor corresponding to a second of theunderlying applications by invoking a service of the second adaptor. 40.The apparatus of claim 38, wherein the second underlying application isa second web based application, and the portion of the second underlyingapplication is a web page of the second web based application.
 41. Theapparatus of claim 38, wherein the second integrator is further designedto perform a sequence of pre-proxy state operations while the proxy isin a pre-proxy state.
 42. The apparatus of claim 38, wherein the secondintegrator is further designed to perform a sequence of post-proxy stateoperations while the proxy is in a post-proxy state.
 43. The apparatusof claim 38, wherein the second adaptor is further equipped to modify aportion of an underlying application being provisioned by the proxy,through the proxy.
 44. The apparatus of claim 38, wherein the secondadaptor is further equipped to invoke a service of the integrator tofacilitate provisioning of the composite application.
 45. The apparatusof claim 38, wherein the integrator is further equipped to modify aportion of an underlying application being provisioned by a proxy,through the proxy.
 46. An apparatus comprising: a storage medium havingstored therein programming instructions designed to implement a firstadaptor corresponding to a first underlying application of a compositeapplication for invoking a proxy to provision a portion of the firstunderlying application in response to a request for the portion of thefirst underlying application, and the proxy to provision the portion ofthe first underlying application in response; and at least one processorcoupled to the storage medium to execute the programming instruction.47. The apparatus of claim 46, wherein the first underlying applicationcomprises a first web based application, and the portion comprises a webpage of the first web based application.
 48. The apparatus of claim 46,wherein the first adaptor is further equipped to perform a sequence ofpre-proxy state operations, while the proxy is in a pre-proxy state. 49.The apparatus of claim 46, wherein the first adaptor is further equippedto perform a sequence of post proxy state operations of the firstadaptor while the proxy is in a post-proxy state.
 50. The apparatus ofclaim 46, wherein the first adaptor is further equipped to modify aportion of an underlying application being proxied by the proxy.
 51. Theapparatus of claim 46, wherein the apparatus further comprises a secondadaptor corresponding to a second underlying application of thecomposite application, equipped to invoke the proxy to provision aportion of the second underlying application, in response to a requestfor the second underlying application; and the proxy provisioning theportion of the second underlying application in response.
 52. Anapparatus comprising: storage medium having stored therein a pluralityof programming instructions designed to make a first request of acomposite application comprising a plurality of underlying applications,via an integrator of the composite application, receive from a first ofthe plurality of underlying applications, via a proxy, a response tosaid first request, with the response including one or more furtherrequests that can be made of the first underlying application, andlocally modify the response to facilitate redirection of at least one ofthe one or more further requests to said integrator, on selection of amodified one of the one or more further requests; and at least oneprocessor coupled to the storage medium to execute the programminginstructions.
 53. The apparatus of claim 52, wherein said programminginstructions are designed to locally modifying at least a selected oneof a static resource location identifier and a dynamically generatedresource location identifier.
 54. The method of claim 52, wherein saidprogramming instructions are further designed to parse and modify scriptcode to perform said local modification of a dynamically generatedresource location identifier.